package com.proyecto.track.test;

import java.util.Date;

import org.springframework.beans.factory.annotation.Autowired;

import com.proyecto.track.bo.*;
import com.proyecto.track.constantes.ConsEstadoDeTarea;
import com.proyecto.track.constantes.ConsTipoDeTarea;
import com.proyecto.track.dao.*;

public class GeneradorBo {
	
	private UsuarioDAO usuarioDAO;
	
	private ProyectoDAO proyectoDAO;
	
	private TipoTareaDAO tipoTareaDAO;
	
	private EstadoTareaDAO estadoTareaDAO;
	
	private ComentarioDAO comentarioDAO;
	
	public GeneradorBo(UsuarioDAO usuarioDAO,ProyectoDAO proyectoDAO,TipoTareaDAO tipoTareaDAO, EstadoTareaDAO estadoTareaDAO,ComentarioDAO comentarioDAO){
		this.proyectoDAO = proyectoDAO;
		this.usuarioDAO = usuarioDAO;
		this.tipoTareaDAO = tipoTareaDAO;
		this.estadoTareaDAO = estadoTareaDAO;
		this.comentarioDAO = comentarioDAO;
	}
	
	public Usuario crearUsuario(){
   	 Usuario usuario = new Usuario();
	 usuario.setNombre("jhdsakl");
	 usuario.setClave("sndjkla");
	 usuario.setNombreCompleto("ndklsajl");
	 return usuario;
	}
	
	public Comentario crearComentario(){
	   	 Comentario comentario= new Comentario();
		 comentario.setNotas("jajaj");
		 Date date = new Date();
		 comentario.setFechaAlta(date);
		 comentario.setTitulo("dasd");
		 return comentario;
		}
	
	@SuppressWarnings("deprecation")
	public Proyecto crearProyecto(){
   	 Proyecto res = new Proyecto();
	 Date date = new Date();
	 date.setYear(date.getYear()+1);
	 res.setFechaDeInicio(date);
	 date.setYear(date.getYear()+1);
	 res.setFechaDeFin(new Date());
	 res.setNombre("Bhbadsjk");
	 res.setResponsable(usuarioDAO.getUsuarioById(usuarioDAO.guardarUsuario(crearUsuario())));
	 res.setHorasAsignadas((long)1000);
	 return res;

	}

	public Tarea crearTarea(){
		Tarea tarea = new Tarea();
		tarea.setFechaDesde(new Date());
		tarea.setHorasAsignadas((long)10);
		tarea.setTipoTarea(tipoTareaDAO.getTipoTareaById(ConsTipoDeTarea.bug));
		tarea.setFechaHasta(new Date());
		Proyecto proyecto = proyectoDAO.getProyectoById(proyectoDAO.guardarProyecto(crearProyecto()));
		proyecto.addTarea(tarea);
		tarea.setProyecto(proyecto);
		return tarea;
	}

	public Tarea crearTareaSinProyecto(){
		Tarea tarea = new Tarea();
		tarea.setFechaDesde(new Date());
		tarea.setHorasAsignadas((long)10);
		tarea.setTipoTarea(tipoTareaDAO.getTipoTareaById(ConsTipoDeTarea.bug));
		tarea.setFechaHasta(new Date());
		return tarea;
	}

	public Comentario crearComentarioSinTarea(Usuario usuario){
		Comentario comentario = new Comentario();
		comentario.setTitulo("Comentario");
		comentario.setCreador(usuario);
		return comentario;
	}

}
